/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package EA_Model.IEC61970.Domain.impl;

import EA_Model.IEC61970.Domain.AbsoluteDate;
import EA_Model.IEC61970.Domain.AbsoluteDateTime;
import EA_Model.IEC61970.Domain.ActivePower;
import EA_Model.IEC61970.Domain.ActivePowerChangeRate;
import EA_Model.IEC61970.Domain.Admittance;
import EA_Model.IEC61970.Domain.AngleDegrees;
import EA_Model.IEC61970.Domain.AngleRadians;
import EA_Model.IEC61970.Domain.ApparentPower;
import EA_Model.IEC61970.Domain.Capacitance;
import EA_Model.IEC61970.Domain.Conductance;
import EA_Model.IEC61970.Domain.CostPerEnergyUnit;
import EA_Model.IEC61970.Domain.CostRate;
import EA_Model.IEC61970.Domain.Currency;
import EA_Model.IEC61970.Domain.CurrentFlow;
import EA_Model.IEC61970.Domain.Damping;
import EA_Model.IEC61970.Domain.DomainFactory;
import EA_Model.IEC61970.Domain.DomainPackage;
import EA_Model.IEC61970.Domain.FloatQuantity;
import EA_Model.IEC61970.Domain.Frequency;
import EA_Model.IEC61970.Domain.Hours;
import EA_Model.IEC61970.Domain.Impedance;
import EA_Model.IEC61970.Domain.Inductance;
import EA_Model.IEC61970.Domain.IntegerQuantity;
import EA_Model.IEC61970.Domain.KWActivePower;
import EA_Model.IEC61970.Domain.Length;
import EA_Model.IEC61970.Domain.Minutes;
import EA_Model.IEC61970.Domain.MonetaryAmountPerEnergyUnit;
import EA_Model.IEC61970.Domain.MonetaryAmountPerHeatUnit;
import EA_Model.IEC61970.Domain.MonetaryAmountRate;
import EA_Model.IEC61970.Domain.Money;
import EA_Model.IEC61970.Domain.PU;
import EA_Model.IEC61970.Domain.PerCent;
import EA_Model.IEC61970.Domain.Pressure;
import EA_Model.IEC61970.Domain.Reactance;
import EA_Model.IEC61970.Domain.ReactivePower;
import EA_Model.IEC61970.Domain.RealEnergy;
import EA_Model.IEC61970.Domain.Resistance;
import EA_Model.IEC61970.Domain.RotationSpeed;
import EA_Model.IEC61970.Domain.Seconds;
import EA_Model.IEC61970.Domain.StringQuantity;
import EA_Model.IEC61970.Domain.Susceptance;
import EA_Model.IEC61970.Domain.Temperature;
import EA_Model.IEC61970.Domain.UnitMultiplier;
import EA_Model.IEC61970.Domain.UnitSymbol;
import EA_Model.IEC61970.Domain.Voltage;
import EA_Model.IEC61970.Domain.VoltagePerReactivePower;
import EA_Model.IEC61970.Domain.Volume;
import EA_Model.IEC61970.Domain.WaterLevel;
import EA_Model.IEC61970.Domain.Weight;

import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EDataType;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;

import org.eclipse.emf.ecore.impl.EFactoryImpl;

import org.eclipse.emf.ecore.plugin.EcorePlugin;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model <b>Factory</b>.
 * <!-- end-user-doc -->
 * @generated
 */
public class DomainFactoryImpl extends EFactoryImpl implements DomainFactory {
	/**
	 * Creates the default factory implementation.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static DomainFactory init() {
		try {
			DomainFactory theDomainFactory = (DomainFactory)EPackage.Registry.INSTANCE.getEFactory("http:///EA_Model/IEC61970/Domain.ecore"); 
			if (theDomainFactory != null) {
				return theDomainFactory;
			}
		}
		catch (Exception exception) {
			EcorePlugin.INSTANCE.log(exception);
		}
		return new DomainFactoryImpl();
	}

	/**
	 * Creates an instance of the factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public DomainFactoryImpl() {
		super();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public EObject create(EClass eClass) {
		switch (eClass.getClassifierID()) {
			case DomainPackage.ABSOLUTE_DATE: return createAbsoluteDate();
			case DomainPackage.STRING: return createString();
			case DomainPackage.ACTIVE_POWER: return createActivePower();
			case DomainPackage.FLOAT: return createFloat();
			case DomainPackage.ACTIVE_POWER_CHANGE_RATE: return createActivePowerChangeRate();
			case DomainPackage.ADMITTANCE: return createAdmittance();
			case DomainPackage.ANGLE_DEGREES: return createAngleDegrees();
			case DomainPackage.ANGLE_RADIANS: return createAngleRadians();
			case DomainPackage.APPARENT_POWER: return createApparentPower();
			case DomainPackage.BOOLEAN: return createBoolean();
			case DomainPackage.CAPACITANCE: return createCapacitance();
			case DomainPackage.CONDUCTANCE: return createConductance();
			case DomainPackage.COST_PER_ENERGY_UNIT: return createCostPerEnergyUnit();
			case DomainPackage.COST_RATE: return createCostRate();
			case DomainPackage.CURRENT_FLOW: return createCurrentFlow();
			case DomainPackage.DAMPING: return createDamping();
			case DomainPackage.FLOAT_QUANTITY: return createFloatQuantity();
			case DomainPackage.FREQUENCY: return createFrequency();
			case DomainPackage.HOURS: return createHours();
			case DomainPackage.IMPEDANCE: return createImpedance();
			case DomainPackage.INDUCTANCE: return createInductance();
			case DomainPackage.INTEGER: return createInteger();
			case DomainPackage.INTEGER_QUANTITY: return createIntegerQuantity();
			case DomainPackage.KW_ACTIVE_POWER: return createKWActivePower();
			case DomainPackage.LENGTH: return createLength();
			case DomainPackage.MINUTES: return createMinutes();
			case DomainPackage.MONEY: return createMoney();
			case DomainPackage.PU: return createPU();
			case DomainPackage.PER_CENT: return createPerCent();
			case DomainPackage.PRESSURE: return createPressure();
			case DomainPackage.REACTANCE: return createReactance();
			case DomainPackage.REACTIVE_POWER: return createReactivePower();
			case DomainPackage.REAL_ENERGY: return createRealEnergy();
			case DomainPackage.RESISTANCE: return createResistance();
			case DomainPackage.ROTATION_SPEED: return createRotationSpeed();
			case DomainPackage.SECONDS: return createSeconds();
			case DomainPackage.STRING_QUANTITY: return createStringQuantity();
			case DomainPackage.SUSCEPTANCE: return createSusceptance();
			case DomainPackage.TEMPERATURE: return createTemperature();
			case DomainPackage.VOLTAGE: return createVoltage();
			case DomainPackage.VOLTAGE_PER_REACTIVE_POWER: return createVoltagePerReactivePower();
			case DomainPackage.VOLUME: return createVolume();
			case DomainPackage.WATER_LEVEL: return createWaterLevel();
			case DomainPackage.WEIGHT: return createWeight();
			case DomainPackage.ABSOLUTE_DATE_TIME: return createAbsoluteDateTime();
			default:
				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
		}
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Object createFromString(EDataType eDataType, String initialValue) {
		switch (eDataType.getClassifierID()) {
			case DomainPackage.UNIT_MULTIPLIER:
				return createUnitMultiplierFromString(eDataType, initialValue);
			case DomainPackage.UNIT_SYMBOL:
				return createUnitSymbolFromString(eDataType, initialValue);
			case DomainPackage.MONETARY_AMOUNT_PER_ENERGY_UNIT:
				return createMonetaryAmountPerEnergyUnitFromString(eDataType, initialValue);
			case DomainPackage.MONETARY_AMOUNT_RATE:
				return createMonetaryAmountRateFromString(eDataType, initialValue);
			case DomainPackage.CURRENCY:
				return createCurrencyFromString(eDataType, initialValue);
			case DomainPackage.MONETARY_AMOUNT_PER_HEAT_UNIT:
				return createMonetaryAmountPerHeatUnitFromString(eDataType, initialValue);
			default:
				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
		}
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public String convertToString(EDataType eDataType, Object instanceValue) {
		switch (eDataType.getClassifierID()) {
			case DomainPackage.UNIT_MULTIPLIER:
				return convertUnitMultiplierToString(eDataType, instanceValue);
			case DomainPackage.UNIT_SYMBOL:
				return convertUnitSymbolToString(eDataType, instanceValue);
			case DomainPackage.MONETARY_AMOUNT_PER_ENERGY_UNIT:
				return convertMonetaryAmountPerEnergyUnitToString(eDataType, instanceValue);
			case DomainPackage.MONETARY_AMOUNT_RATE:
				return convertMonetaryAmountRateToString(eDataType, instanceValue);
			case DomainPackage.CURRENCY:
				return convertCurrencyToString(eDataType, instanceValue);
			case DomainPackage.MONETARY_AMOUNT_PER_HEAT_UNIT:
				return convertMonetaryAmountPerHeatUnitToString(eDataType, instanceValue);
			default:
				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
		}
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public AbsoluteDate createAbsoluteDate() {
		AbsoluteDateImpl absoluteDate = new AbsoluteDateImpl();
		return absoluteDate;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.String createString() {
		StringImpl string = new StringImpl();
		return string;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ActivePower createActivePower() {
		ActivePowerImpl activePower = new ActivePowerImpl();
		return activePower;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Float createFloat() {
		FloatImpl float_ = new FloatImpl();
		return float_;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ActivePowerChangeRate createActivePowerChangeRate() {
		ActivePowerChangeRateImpl activePowerChangeRate = new ActivePowerChangeRateImpl();
		return activePowerChangeRate;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Admittance createAdmittance() {
		AdmittanceImpl admittance = new AdmittanceImpl();
		return admittance;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public AngleDegrees createAngleDegrees() {
		AngleDegreesImpl angleDegrees = new AngleDegreesImpl();
		return angleDegrees;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public AngleRadians createAngleRadians() {
		AngleRadiansImpl angleRadians = new AngleRadiansImpl();
		return angleRadians;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ApparentPower createApparentPower() {
		ApparentPowerImpl apparentPower = new ApparentPowerImpl();
		return apparentPower;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Boolean createBoolean() {
		BooleanImpl boolean_ = new BooleanImpl();
		return boolean_;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Capacitance createCapacitance() {
		CapacitanceImpl capacitance = new CapacitanceImpl();
		return capacitance;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Conductance createConductance() {
		ConductanceImpl conductance = new ConductanceImpl();
		return conductance;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public CostPerEnergyUnit createCostPerEnergyUnit() {
		CostPerEnergyUnitImpl costPerEnergyUnit = new CostPerEnergyUnitImpl();
		return costPerEnergyUnit;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public CostRate createCostRate() {
		CostRateImpl costRate = new CostRateImpl();
		return costRate;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public CurrentFlow createCurrentFlow() {
		CurrentFlowImpl currentFlow = new CurrentFlowImpl();
		return currentFlow;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Damping createDamping() {
		DampingImpl damping = new DampingImpl();
		return damping;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public FloatQuantity createFloatQuantity() {
		FloatQuantityImpl floatQuantity = new FloatQuantityImpl();
		return floatQuantity;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Frequency createFrequency() {
		FrequencyImpl frequency = new FrequencyImpl();
		return frequency;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Hours createHours() {
		HoursImpl hours = new HoursImpl();
		return hours;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Impedance createImpedance() {
		ImpedanceImpl impedance = new ImpedanceImpl();
		return impedance;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Inductance createInductance() {
		InductanceImpl inductance = new InductanceImpl();
		return inductance;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Integer createInteger() {
		IntegerImpl integer = new IntegerImpl();
		return integer;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public IntegerQuantity createIntegerQuantity() {
		IntegerQuantityImpl integerQuantity = new IntegerQuantityImpl();
		return integerQuantity;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public KWActivePower createKWActivePower() {
		KWActivePowerImpl kwActivePower = new KWActivePowerImpl();
		return kwActivePower;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Length createLength() {
		LengthImpl length = new LengthImpl();
		return length;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Minutes createMinutes() {
		MinutesImpl minutes = new MinutesImpl();
		return minutes;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Money createMoney() {
		MoneyImpl money = new MoneyImpl();
		return money;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public PU createPU() {
		PUImpl pu = new PUImpl();
		return pu;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public PerCent createPerCent() {
		PerCentImpl perCent = new PerCentImpl();
		return perCent;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Pressure createPressure() {
		PressureImpl pressure = new PressureImpl();
		return pressure;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Reactance createReactance() {
		ReactanceImpl reactance = new ReactanceImpl();
		return reactance;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ReactivePower createReactivePower() {
		ReactivePowerImpl reactivePower = new ReactivePowerImpl();
		return reactivePower;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public RealEnergy createRealEnergy() {
		RealEnergyImpl realEnergy = new RealEnergyImpl();
		return realEnergy;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Resistance createResistance() {
		ResistanceImpl resistance = new ResistanceImpl();
		return resistance;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public RotationSpeed createRotationSpeed() {
		RotationSpeedImpl rotationSpeed = new RotationSpeedImpl();
		return rotationSpeed;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Seconds createSeconds() {
		SecondsImpl seconds = new SecondsImpl();
		return seconds;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public StringQuantity createStringQuantity() {
		StringQuantityImpl stringQuantity = new StringQuantityImpl();
		return stringQuantity;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Susceptance createSusceptance() {
		SusceptanceImpl susceptance = new SusceptanceImpl();
		return susceptance;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Temperature createTemperature() {
		TemperatureImpl temperature = new TemperatureImpl();
		return temperature;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Voltage createVoltage() {
		VoltageImpl voltage = new VoltageImpl();
		return voltage;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public VoltagePerReactivePower createVoltagePerReactivePower() {
		VoltagePerReactivePowerImpl voltagePerReactivePower = new VoltagePerReactivePowerImpl();
		return voltagePerReactivePower;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Volume createVolume() {
		VolumeImpl volume = new VolumeImpl();
		return volume;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public WaterLevel createWaterLevel() {
		WaterLevelImpl waterLevel = new WaterLevelImpl();
		return waterLevel;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Weight createWeight() {
		WeightImpl weight = new WeightImpl();
		return weight;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public AbsoluteDateTime createAbsoluteDateTime() {
		AbsoluteDateTimeImpl absoluteDateTime = new AbsoluteDateTimeImpl();
		return absoluteDateTime;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public UnitMultiplier createUnitMultiplierFromString(EDataType eDataType, String initialValue) {
		UnitMultiplier result = UnitMultiplier.get(initialValue);
		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
		return result;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String convertUnitMultiplierToString(EDataType eDataType, Object instanceValue) {
		return instanceValue == null ? null : instanceValue.toString();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public UnitSymbol createUnitSymbolFromString(EDataType eDataType, String initialValue) {
		UnitSymbol result = UnitSymbol.get(initialValue);
		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
		return result;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String convertUnitSymbolToString(EDataType eDataType, Object instanceValue) {
		return instanceValue == null ? null : instanceValue.toString();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public MonetaryAmountPerEnergyUnit createMonetaryAmountPerEnergyUnitFromString(EDataType eDataType, String initialValue) {
		MonetaryAmountPerEnergyUnit result = MonetaryAmountPerEnergyUnit.get(initialValue);
		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
		return result;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String convertMonetaryAmountPerEnergyUnitToString(EDataType eDataType, Object instanceValue) {
		return instanceValue == null ? null : instanceValue.toString();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public MonetaryAmountRate createMonetaryAmountRateFromString(EDataType eDataType, String initialValue) {
		MonetaryAmountRate result = MonetaryAmountRate.get(initialValue);
		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
		return result;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String convertMonetaryAmountRateToString(EDataType eDataType, Object instanceValue) {
		return instanceValue == null ? null : instanceValue.toString();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Currency createCurrencyFromString(EDataType eDataType, String initialValue) {
		Currency result = Currency.get(initialValue);
		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
		return result;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String convertCurrencyToString(EDataType eDataType, Object instanceValue) {
		return instanceValue == null ? null : instanceValue.toString();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public MonetaryAmountPerHeatUnit createMonetaryAmountPerHeatUnitFromString(EDataType eDataType, String initialValue) {
		MonetaryAmountPerHeatUnit result = MonetaryAmountPerHeatUnit.get(initialValue);
		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
		return result;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String convertMonetaryAmountPerHeatUnitToString(EDataType eDataType, Object instanceValue) {
		return instanceValue == null ? null : instanceValue.toString();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public DomainPackage getDomainPackage() {
		return (DomainPackage)getEPackage();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @deprecated
	 * @generated
	 */
	@Deprecated
	public static DomainPackage getPackage() {
		return DomainPackage.eINSTANCE;
	}

} //DomainFactoryImpl
